package br.edu.ifrn.controller;

import java.util.List;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import br.edu.ifrn.dao.CategoriaUsuarioDAO;
import br.edu.ifrn.exeption.CategoriaUsuarioException;
import br.edu.ifrn.model.CategoriaUsuario;

@Stateless
@LocalBean
public class CategoriaUsuarioEJB implements CategoriaUsuarioEJBLocal {

	@PersistenceContext(name="sigadocDB")
	private EntityManager em;
		
	@Override
	public List<CategoriaUsuario> listar() {
		CategoriaUsuarioDAO categoriaUsuarioDAO = new CategoriaUsuarioDAO(em);
		return categoriaUsuarioDAO.listar();
	}

	@Override
	public void salvar(CategoriaUsuario categoriaUsuario) {
		CategoriaUsuarioDAO categoriaUsuarioDAO = new CategoriaUsuarioDAO(em);
		categoriaUsuarioDAO.salvar(categoriaUsuario);
	}

	@Override
	public void remover(CategoriaUsuario categoriaUsuario) throws CategoriaUsuarioException {
		CategoriaUsuarioDAO categoriaUsuarioDAO = new CategoriaUsuarioDAO(em);
		if(categoriaUsuarioDAO.isAssociado(categoriaUsuario.getId()))
			throw new CategoriaUsuarioException("Existem usuário(s) associado(s) a esta categoria");
		else
			categoriaUsuarioDAO.remover(categoriaUsuario);
	}

	@Override
	public CategoriaUsuario find(Long id) {
		CategoriaUsuarioDAO categoriaUsuarioDAO = new CategoriaUsuarioDAO(em);
		return categoriaUsuarioDAO.findById(CategoriaUsuario.class, id);
	}
}